
# 输入：row包含question和answer  输出：格式化后的AI模型输入数据
def format_question_answer(row):
    question = row["question"]
    answer = row["answer"]
    TYPE = "编程题"
    TOTALSCORE = 10
    # 格式化输出
    formatted_output = f"题目类型：{TYPE}\n题目内容：{question}\n题目总分：{TOTALSCORE}\n学生作答：\n{answer}\n"
    return formatted_output


#  遇上个模型相反的输出，需要将其转换为json格式
def parse_formatted_output(formatted_output):
    # 初始化一个字典来存储解析后的数据
    parsed_data = {}

    # 使用正则表达式提取各个部分
    type_match = re.search(r"题目类型：(.+?)\n", formatted_output)
    content_match = re.search(r"题目内容：(.+?)\n", formatted_output)
    score_match = re.search(r"题目总分：(\d+)\n", formatted_output)
    answer_match = re.search(
        r"学生作答：(.*?)$", formatted_output, re.DOTALL
    )  # 直到字符串结束

    if type_match:
        parsed_data["题目类型"] = type_match.group(1).strip()
    if content_match:
        parsed_data["题目内容"] = content_match.group(1).strip()
    if score_match:
        parsed_data["题目总分"] = int(score_match.group(1).strip())
    if answer_match:
        parsed_data["学生作答"] = answer_match.group(1).strip()

    return parsed_data
